//
// Created by Administrator on 2024/3/25.
//
#include<bits/stdc++.h>

using namespace std;
const int maxn = 1e6 + 500;
vector<bool> dp(maxn);

/**
* 素数的埃托尼斯筛法 造表花费时间约nlogn,以后查询都是O(1)
*/
void get_primes() {
    fill(dp.begin(), dp.end(), 1);//把1-n放入筛中

    dp[0] = dp[1] = false;//删除0和1
    for (int i = 2; i <= maxn / i; i++) {//对于2到sqrt(N)的每一个数
        if (dp[i])//如果i是素数
            for (int j = i; j * i < maxn; j++) {//删除i的倍数
                dp[j * i] = false;
            }
    }
}

int main() {
    int n;
    cin >> n;
    int tot = 0;
    if (n >= 3)++tot;
    for (int i = 3; i + 2 <= n; i += 2) {
        if (dp[i] && dp[i + 2]) {
            ++tot;
        }
    }
    cout << tot;

    return 0;
}